﻿using AiQiuQuan.Sport.Core;
using AiQiuQuan.Sport.Model.Models;

namespace AiQiuQuan.Sport.WebApi.Services
{
    /// <summary>
    /// 支付相关服务
    /// </summary>
    public interface IPayService : ITransientDependency
    {
        /// <summary>
        /// 获取支付信息
        /// </summary>
        /// <param name="request">PayInfoRequestDto</param>
        Task<PayInfoDto> GetPayInfoAsync(PayInfoRequestDto request);

        /// <summary>
        /// 支付
        /// </summary>
        Task<UnaryResult<PayResultDto>> PayAsync(PayRequestDto request);

        /// <summary>
        /// 退款
        /// </summary>
        Task<UnaryResult<RefundResultDto>> RefundAsync(RefundRequestDto request);

        /// <summary>
        /// 微信支付回调
        /// </summary>
        Task<WxResponseDto> PayCallbackAsync(WxPayCallbackDto request);
    }
}
